﻿using DemoPrism.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoPrism.Services
{
    public interface IAuthenticationService
    {
        User CurrentUser { get; }
        bool IsAuthenticated { get; }
        Task<bool> LoginAsync(string username, string password);
        Task LogoutAsync();
        Task<bool> ChangePasswordAsync(string oldPassword, string newPassword);
        Task<bool> SendEmailVerificationAsync();
        Task<bool> VerifyEmailAsync(string code);
        event Action<User> UserChanged;
    }

}
